package com.tieba.service;

import com.tieba.pojo.Collection;
import com.tieba.pojo.Comment;
import com.tieba.pojo.Like;
import com.tieba.pojo.Message;

import java.util.List;

public interface MessageService {

    /**
     * 查询所有帖子
     * @return
     */
    List<Message> list();


    /**
     * 根据留言id查询留言
     * @param id
     * @return
     */
    Message getById(Integer id);

    /**
     * 根据用户id查询所有帖子
     * @return
     */
    List<Message> listByOwerId(Integer id);

    /**
     * 根据被评论的帖子id查询所有帖子
     * @return
     */
    List<Message> listByCommentedId(Integer id);

    /**
     * 新增留言
     * @param message
     */
    void add(Message message);

    /**
     * 删除帖子
     * @param ids
     */
    void delete(List<Integer> ids);

    /**
     * 修改帖子信息，点赞/收藏/评论数
     * @param message
     */
    //void update(Message message);

    /**
     * 用户{userId}点赞了哪些评论
     * @param userId
     * @return
     */
    List<Message> listLike(Integer userId);

    /**
     * 用户{userId}评论了哪些评论
     * @param userId
     * @return
     */
    List<Message> listComment(Integer userId);

    /**
     * 用户{userId}收藏了哪些评论
     * @param userId
     * @return
     */
    List<Message> listCollection(Integer userId);

    /**
     * 新增一个点赞
     * @param like
     */
    void addlike(Like like);

    /**
     * 新增一个评论
     * @param comment
     */
    void addcomment(Comment comment);

    /**
     * 新增一个收藏
     * @param collection
     */
    void addcollection(Collection collection);

    /**
     * 取消点赞
     * @param like
     */
    void deleteLike(Like like);

    /**
     * 取消收藏
     * @param collection
     */
    void deleteCollection(Collection collection);

    /**
     * 哪些用户点赞了这个帖子
     * @param messageId
     * @return
     */
    List<Integer> listLikedUsers(Integer messageId);

    /**
     * 哪些用户收藏了这个帖子
     * @param messageId
     * @return
     */
    List<Integer> listCollectedUsers(Integer messageId);


}
